(set-logic BV)

(define-fun shr1 ((x (BitVec 64))) (BitVec 64) (bvlshr x #x0000000000000001))
(define-fun shr4 ((x (BitVec 64))) (BitVec 64) (bvlshr x #x0000000000000004))
(define-fun shr16 ((x (BitVec 64))) (BitVec 64) (bvlshr x #x0000000000000010))
(define-fun shl1 ((x (BitVec 64))) (BitVec 64) (bvshl x #x0000000000000001))
(define-fun if0 ((x (BitVec 64)) (y (BitVec 64)) (z (BitVec 64))) (BitVec 64) (ite (= x #x0000000000000001) y z))

(synth-fun f ( (x (BitVec 64))) (BitVec 64)
(

(Start (BitVec 64) (#x0000000000000000 #x0000000000000001 x (bvnot Start)
                    (shl1 Start)
 		    (shr1 Start)
		    (shr4 Start)
		    (shr16 Start)
		    (bvand Start Start)
		    (bvor Start Start)
		    (bvxor Start Start)
		    (bvadd Start Start)
		    (if0 Start Start Start)
 ))
)
)
(constraint (= (f #xD506A5A29E73BF23) #xAA0D4B453CE77E47))
(constraint (= (f #xB2EEDDF9ACAF21E3) #x65DDBBF3595E43C7))
(constraint (= (f #x06E175099F7CFFFF) #x0DC2EA133EF9FFFF))
(constraint (= (f #x3DFBBC0B8F33C917) #x7BF778171E67922F))
(constraint (= (f #x74B17A6D64F99901) #xE962F4DAC9F33203))
(constraint (= (f #x800000000000FFFF) #x0800000000000FFF))
(constraint (= (f #x000000000000FFFF) #x0000000000000FFF))
(constraint (= (f #xA69C1C3731EC4B7A) #x0A69C1C3731EC4B7))
(constraint (= (f #xEABB89CC855E15AD) #x0EABB89CC855E15A))
(constraint (= (f #xC654FFD8BF1AD443) #x0C654FFD8BF1AD44))
(constraint (= (f #x7AF85A6943A2DE5B) #x07AF85A6943A2DE5))
(constraint (= (f #x108569420CA66816) #x0108569420CA6681))
(constraint (= (f #x0000000000008CED) #x00000000000008CE))
(constraint (= (f #x000000000000D16F) #x0000000000000D16))
(constraint (= (f #x000000000000ECBA) #x0000000000000ECB))
(constraint (= (f #x800000000000E27A) #x0800000000000E27))
(constraint (= (f #x8000000000009EA6) #x08000000000009EA))
(check-synth)
